#pragma once


#define _CRT_SECURE_NO_WARNINGS

#include <windows.h>
#include <direct.h> 

#define WIN32
#define API_EXPORTS

#ifdef WIN32
	#ifdef API_EXPORTS
		#define API extern "C" __declspec(dllexport)
	#else
		#define API __declspec(dllimport) 
	#endif
#else
	#define API
#endif

#define VERSION "1.0"

API const char* Version();
API int Init();
API int BindIntCall(void* func);

API char* ReadIOBuffer();
API int WriteIOBuffer(char* buff, int size);
API int ClearIOBuffer();

API unsigned char* GetExeByte();
API int GetExeLengh();
API unsigned char* GetMemory();
API int GetMemorySize();
API void* GetRegister();

API int LoadExe(const char* ExeName);
API int SetMemory(void* mem);
API int LoadToMem(int Base);
API int Relocation();

API int RunStep();
API int Disassem(char* buff);
API int DisassemByIP(char* buff, WORD ip);